css를 사용하여 텍스트가 매우 긴 경우
원하는 줄 만큼만 보여주는 방법에 대하여 알아봅니다. 또 생략표시(...)로 표기하는 방법도 같이 알아봅니다. 어떻게 하면 될까요?
! 언제 사용할까?
전체를 다 보여줄 수 없이 요약(?)해 보여주는 리스트 형태의 글에서는
원하는 줄 만큼만 보여주는 방법이 가장 많이 쓰입니다. 이 때 생각할 부분은 몇 줄까지만 보여줄지와 어떻게 구현할까 두 가지 입니다. 생각할 수 있는 몇 가지 방법을 알아봅니다.
# 멀티라인... 두 줄의 이상의 텍스트에 생략기호를 적용하는 방법
가장 효과적인 방법으로 생략 기호를 적용하는 방법을 생각할 수 있습니다. 바로 css에 text-overflow: ellipsis 스타일 속성을 적용하는 방법이죠.
하지만 만약 한 줄이 아닌 경우에는 적용하기 어렵습니다. 그래서 다른 방법이 필요한데 해결 방법은 무엇이 있을까요?
text-ellipsis 더 알아보기 >https://webisfree.com/2015-08-17/[css]-text-overflow-텍스트가-많은-경우-생략기호로-보여주기1. 크롬 등의 웹킷(Webkit) 엔진의 브라우저에 적용하는 방법
먼저 크롬 등의 웹킷에만 적용 가능한 방법이 있습니다. 바로 아래와 같이 스타일 속성을 적용하는 방법입니다. 예를들어 5줄까지만 보여주려면 아래와 같이 적용하여 사용합니다.
.ellipsis-all {
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
}
위에서 사용된 css 속성
-webkit-line-clamp의 값이 있죠. 이 값을 적용하면 원하는 라인의 개수 만큼 보여주고 나머지는 생략기호로 나타나게 됩니다. display: -webkit-box; 등의 나머지 값들도 함께 설정해야 하니 참고하세요.
-webkit-line-clamp: 출력 할 라인 수
매우 유용한 방법이나 단점은 역시 webkit 엔진에만 사용 가능하다는 점입니다. 이처럼 크로스 브라우징에 이슈가 있으나 가장 간단한 방법이면서
마지막 텍스트 뒤에 생략기호로 표시되는 장점이 있죠.
그럼 이 값을 적용하기 이 전 그리고 이 후 어떻게 달라지는지 아래에서 확인해보겠습니다. 3줄만 나타내려고 합니다.
@ 적용 전
123456789012345678901234567890123456789012345678901234567890
@ 적용 후
123456789012345678901234567890123456789012345678901234567890
위에 적용 후의 모습을 보면
생략기호로 나타났고
3줄만 출력된 모습을 볼 수 있습니다. 아래는 적용된 css 값입니다.
div {
width: 100px;
border: 1px solid;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
여기까지 웹킷 엔진에서 사용 가능한 생략 표시 및 원하는 줄까지만 보여주는 방법을 알아봤습니다. 참고로 이 외에 어떤 방법을 생각할 수 있을까요? 이런 고민은 역시 다른 브라우저... 특히 IE에 적용하기 위한 방법을 생각하기 위해서죠...
일단 생략기호가 없어도 된다면 IE에서는 높이값을 설정해서 가능합니다. 즉 3줄만 보여줄 때 한 줄의 높이가 20px이라고 가정하면 60px로 높이만 적용하면 되죠. 단, 생략기호로 표시되는 건 아쉽지만 IE에서는 어쩔 수 없겠죠 ~
! 자바스크립트를 사용하여 구현하기, -webkit-line-clamp
그리고 자바스크립트를 사용할 수 있을텐데요 ... 이 방법을 사용한 코드를 다음에 작성하도록 하겠습니다.